package org.example.learningplanassistant.controller;

import jakarta.annotation.Resource;
import org.example.learningplanassistant.dto.LoginFormDTO;
import org.example.learningplanassistant.dto.RegisterFormDTO;
import org.example.learningplanassistant.dto.Result;
import org.example.learningplanassistant.service.IUserService;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 用户信息表 前端控制器
 * </p>
 *
 * @author gcbsh
 * @since 2025-03-24
 */
@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private IUserService userService;
    /**
     * 登录功能
     * @param loginForm 登录参数，包含手机号、验证码；或者用户名、密码以及登录类型
     *                  登录类型：1 手机号+验证码登录  2 用户名+密码登录
     */
    @PostMapping("/login")
    public Result login(@RequestBody LoginFormDTO loginForm){
        return userService.login(loginForm);
    }

    /**
     * 注册功能
     * @param registerForm 注册参数，包含用户名、密码
     */
    @PostMapping("/register")
    public Result register(@RequestBody RegisterFormDTO registerForm){
        return userService.register(registerForm);
    }

    /**
     * 发送手机验证码
     */
    @GetMapping("/code")
    public Result sendCode(@RequestParam("phone") String phone) {
        return userService.sendCode(phone);
    }

}

